﻿using System.ComponentModel.DataAnnotations;
using YNTK.Common.Enum;
using YNTK.Dependency;

namespace YNTK.SimpleWorkflow.Entitys
{
    /// <summary>
    /// 提交/审核/确认日常工作申请请求模型
    /// </summary>
    [SuppressSniffer]
    public class SubmitDailyWorkRequestModel
    {
        /// <summary>
        /// 日常工作id
        /// </summary>
        [Required(ErrorMessage = "日常工作唯一标识不能为空")]
        public string id { get; set; }

        /// <summary>
        /// 审核通过下一节点处理人用户,已经是最后一个节点传空,如果是驳回或者是下一节点是发起人确认也为空
        /// </summary>
        public string userId { get; set; }

        /// <summary>
        /// 操作类型(0.提交申请 1.审核 2.发起人确认),发起人提交状态“未提交”传0,
        /// 下一节点处理人为当前登录用户且状态为“待审核”可点击“审核”传，
        /// 状态为“待确认”发起人可“确认”传2
        /// </summary>
        [Required(ErrorMessage = "操作类型标识不能为空")]
        public AuditOperateTypeEnum operateType { get; set; }

        /// <summary>
        /// 状态(0.提交申请 1.审核通过 2.审核不通过 3.驳回 4.发起人已确认)
        /// 发起人提交申请传0,下一节点处理人审核传审核的结果1通过或2不通过,
        /// 如果当前节点允许驳回并且选择了驳回传3,发起人确认传4
        /// </summary>
        [Required(ErrorMessage = "操作结果标识不能为空")]
        public AuditStateTypeEnum state { get; set; }

        /// <summary>
        /// 备注或意见
        /// </summary>
        public string description { get; set; }

        /// <summary>
        /// 签名图片base64,不需要签名的不用传(这个字段不用传了使用个人中心的签名文件自动签名)
        /// </summary>
        public string signatureBase64 { get; set; }

        /// <summary>
        /// 审核相关附件数据
        /// </summary>
        public List<AuditFileRequestModel> fileData { get; set; }
    }
}
